home *** CD-ROM | disk | FTP | other *** search
/ Collection of Internet / Collection of Internet.iso / infosrvr / dev / www_talk.930 / 001467_daemon _Mon Jun 28 14:42:34 1993.msg < prev    next >
Internet Message Format  |  1994-01-24  |  7KB

  1. Received: by  nxoc01.cern.ch  (NeXT-1.0 (From Sendmail 5.52)/NeXT-2.0)
  2.     id AA17673; Mon, 28 Jun 93 14:42:37 MET DST
  3. Return-Path: <mvanheyn@cs.indiana.edu>
  4. Received: from dxmint.cern.ch by  nxoc01.cern.ch  (NeXT-1.0 (From Sendmail 5.52)/NeXT-2.0)
  5.     id AA17669; Mon, 28 Jun 93 14:42:34 MET DST
  6. Received: from moose.cs.indiana.edu by dxmint.cern.ch (5.65/DEC-Ultrix/4.3)
  7.     id AA24585; Mon, 28 Jun 1993 15:05:51 +0200
  8. Received: from localhost by moose.cs.indiana.edu
  9.     (5.65c/9.4jsm) id AA21671; Mon, 28 Jun 1993 08:05:49 -0500
  10. From: Marc VanHeyningen <mvanheyn@cs.indiana.edu>
  11. To: www-talk@nxoc01.cern.ch
  12. Subject: browser execution
  13. Date: Mon, 28 Jun 1993 08:05:49 -0500
  14. Message-Id: <21669.741272749@moose.cs.indiana.edu>
  15. Sender: mvanheyn@cs.indiana.edu
  16.  
  17. Responding to a few things by various people...
  18.  
  19. George Phillips <phillips@cs.ubc.ca> says:
  20. >Semantics: decode the "encoded-URL", grab it and execute it
  21. >with the rest of the URL.  I used the  "//" notation so
  22. >that executables can ouput "/" rooted URLs without having
  23. >to know who they are, that is, rn.html can say "<A HREF=/comp/risks>".
  24. >We can do the "encoded-URL" any way we like, but suppose that
  25. >: -> ; and / -> \.  A full exec: URL might look like:
  26. >
  27. >    exec://file;\bin\rn.html/comp/sources/misc
  28.  
  29. I'd be more inclined to encode the URL with the general percent escape
  30. notation, but that's just me.
  31.  
  32. (Unrelated question:  Consider the URL http://foo/search?bar%2Bbaz --
  33. how many search keywords does it have, and what are they?  My
  34. inclination is to interpret it as one keyword "bar+baz", though that's
  35. inconvenient for the server since it can't just do all the percent
  36. substitution immediately upon receiving the object.)
  37.  
  38. >However, with the MIME executable content type, I'd expect that
  39. >most exec: URLs would point to files, so file: would be the default.
  40. >Additionally, the browser might have some notion of a PATH for
  41. >exec: files (possibly as a first-level security mechanism), so the
  42. >whole thing could be shortened to:
  43. >
  44. >    exec://rn.html/comp/sources/misc
  45.  
  46. This sounds a bit more portable and a bit less anxiety-inducing as far
  47. as security is concerned.  A special directory (or set of aliases, or
  48. something) of safe commands described with somewhat abstract names
  49. could work out OK.  The result is that your local commands end up of
  50. the form:
  51.  
  52.     exec://mail-rfc822/x-mosaic@ncsa.uiuc.edu
  53.  
  54. or something like that.  Whether this is better than the form:
  55.  
  56.     mail-rfc822://x-mosaic@ncsa.uiuc.edu
  57.  
  58. (or something like that) is debatable either way; I think either is
  59. probably workable as long as the number of different things you can do
  60. that way is rather small, considered carefully, and centrally
  61. registered in some fashion.
  62.  
  63. Tony Sanders <sanders@bsdi.com> responds:
  64. >SAS strikes again (server aversion syndrome :-)
  65. >
  66. >    content-type: application/x-csh
  67.  
  68. No!  Anything but the Cshell!  Nobody move, or I post Tom Christiansen
  69. to the mailing list! :-)
  70.  
  71. >My reasoning:
  72. >  o Browsers cannot change on a whim, because for the Web to be truly
  73. >    useful to the user community at large all browsers must support the
  74. >    **same** set of features (to a large extent anyway).
  75. >  o Therefore we **must** have a definition for the browser that is simple
  76. >    and complete such that any features you might ever want can be done
  77. >    in a server.
  78.  
  79. I agree here, which is why I'm hesitant to extend things to a general
  80. execution type since programs (particularly, say, cshell programs) are
  81. inherintly non-portable.  I suppose we could try to agree on a
  82. language to specify programs to be executed in.  Such a language would
  83. need a number of attributes:
  84.  
  85. - Highly portable, will run on UNIX boxes, DOS boxes, Macs, whatever
  86. - Freely available
  87. - Can work in a "paranoid" fashion whereby it is reasonably safe to
  88.   execute untrusted code with it
  89.  
  90. I'm not sure such a language can even exist.  (Perl meets the first
  91. two criteria, at least.)  I'm pretty sure that inventing it is more
  92. than we can or should try to do.
  93.  
  94. >I'm not a purist or anything, I think it's fine if we want the browser to
  95. >support things like gopher and ftp directly but at some point we are going
  96. >to have to draw the line if we want most browsers to support a common
  97. >set of features (even <IMG> is a good example of this problem).
  98.  
  99. I concur; one problem is that most people will generally use just one
  100. browser and thus they'll write documents assuming that everyone else
  101. uses it too.  I've seen documents that rely on IMG too much, given the
  102. number of browsers that don't support it.
  103.  
  104. George Phillips <phillips@cs.ubc.ca> answers:
  105. >Servers are not _that_ easy to write.  They are if you're running UNIX
  106. >and you have either inetd.conf privileges or know how to do sockets.
  107. >Who knows what you'd have to do under VMS or MVS and you just can't
  108. >do them under MS-DOS.  On the other hand, writing a program which
  109. >dumps some HTML to a file is easy and possible under all systems.
  110. >It's very similar to adding to a server, but anybody, not just the
  111. >server administrator can do it and they can share with other non-privileged
  112. >users.
  113.  
  114. Servers _can be_ easy to write.  A base server could allow you to
  115. easily add new functionality of the variety you discuss without
  116. needing to understand the details of UNIX sockets (not that they're
  117. really that complicated anyway.)  Plexus, for example, allows this.
  118. Don't confuse limitations of particular implementations with
  119. limitations of HTTP servers in general.
  120.  
  121. >Even if you can easily run a server, you've got some security problems
  122. >to deal with.  Having a browser that will execute code (or URLs, whatever)
  123. >from documents is a little scary; having a server that anyone can
  124. >connect to execute code is really scary.  With the browser executing
  125. >code you leverage off the normal system authentication.  With a server,
  126. >you have to re-invent that.  Sure, these features are coming and
  127. >that's good; but you're building up an awful lot of stuff to solve
  128. >a simple problem.
  129.  
  130. Servers can run without privilige; ours runs as id "daemon" and
  131. doesn't have the priv to do much other than dequeue other people's
  132. print jobs.  Surely webmasters don't run their HTTP server as root?
  133.  
  134. Browsers, on the other hand, have to run as users and are thus capable
  135. of harming their users; I find using "normal system authentication"
  136. (as it exists on most machines) to run code in this kind of situation
  137. highly undesirable.
  138.  
  139. >Well, if you want to add features you have a choice.  Either make it
  140. >harder for the browser writers or make it harder for the server writers.
  141. >I maintain that the exec: URL scheme makes it a little harder for
  142. >the browser writers but is a boon for server writers since it truly
  143. >makes it easy to write a server (just like the simple inetd scripts,
  144. >but you don't need privilege).
  145.  
  146. Except that what has been written isn't a server at all, it's just a
  147. program.  It doens't provide a service to anyone except the person (or
  148. small group of people) who have examined it, decided it safe, and
  149. placed it on their list of commands for which exec:ing is permissible.
  150. (unless this procedure is not used, in which case it's a security hole
  151. you could drive an aircraft carrier through.)
  152.  
  153. - Marc
  154. --
  155. Marc VanHeyningen  mvanheyn@cs.indiana.edu  MIME, RIPEM & HTTP spoken here